const mysql = require('mysql2/promise')

const db = mysql.createPool({
    host: '127.0.0.1',
    user: 'root',
    password: 'admin777',
    database: 'mkschat',
    waitForConnections: true, // 连接池满时等待（而非报错）
    connectionLimit: 10,     // 最大连接数
    queueLimit: 0            // 等待队列长度（0 表示无限制）
})

// 挂载一个检查表是否存在的方法
db.checkTableExists = async (tableName) => {
    // 执行查询
    try {
        const [rows] = await db.query(
            `SELECT TABLE_NAME 
         FROM INFORMATION_SCHEMA.TABLES 
         WHERE TABLE_SCHEMA='mkschat'
         AND TABLE_NAME=?`, [tableName])
        return rows.length > 0
    } catch (err) {
        console.log('Error: checkTableExists-> ', err.message)
        throw err
    }

}

// 数据库错误判断函数
db.isDatabaseError = (err) => {
    // mysql2 数据库错误的核心特征
    return (
        typeof err === 'object' &&
        err !== null &&
        'code' in err &&          // 存在错误代码
        'errno' in err &&         // 存在错误编号
        'sqlState' in err         // 存在SQL状态码
    )
}


module.exports = db